package server.secretaria.aula;

import persistencia.dominio.*;
import persistencia.Persistencia;
import comun.MyException;
import comun.constantes.*;

  abstract public class CreaPermisos {

 protected Persistencia persistencia;
 // tipos de usuarios



 protected TipoUsuario tipoUsuarioAlumno = null;
 protected TipoUsuario tipoUsuarioTutor = null;
 protected TipoUsuario tipoUsuarioVeedor = null;
 protected TipoUsuario tipoUsuarioAdministrador = null;
 protected TipoUsuario tipoUsuarioAdministradorMateriales = null;

 protected TipoUsuario tipoUsuarioDirector = null;
 protected TipoUsuario tipoUsuarioDocente = null;
 protected TipoUsuario tipoUsuarioMonitorSiat = null;
 protected TipoUsuario tipoUsuarioWebMaster = null;
 protected TipoUsuario tipoUsuarioResponsable = null;
 protected TipoUsuario tipoUsuarioInvitado = null;
 protected TipoUsuario tipoUsuarioColaborador = null;
 protected TipoUsuario tipoUsuarioCoordinador = null;

  // Los distintos tipos de Recursos
 protected Recurso recursoChat = null;
 protected Recurso recursoInicio = null;
 protected Recurso recursoFaq = null;
 protected Recurso recursoPizarron = null;
 protected Recurso recursoCorreo = null;
 protected Recurso recursoForoOpinion = null;
 protected Recurso recursoForoAsunto = null;
 protected Recurso recursoForoEstado = null;
 protected Recurso recursoEstadisticas = null;
 protected Recurso recursoEstadisticasAcceso = null;

 protected Recurso recursoActividades = null;
 protected Recurso recursoEnviarActividadesYVerCalificaciones = null;
 protected Recurso recursoRecibirYEvaluarActividades = null;
 protected Recurso recursoEvaluarActividades = null;
 protected Recurso recursoCrearActividades = null;

 protected Recurso recursoCalificacionesVistaTutor = null;
 protected Recurso recursoCalificacionesVistaAlumnos = null;


 protected Recurso recursoEncuestasLlenar = null;
 protected Recurso recursoEncuestasHabilitar = null;
 protected Recurso recursoEncuestasResultados = null;
 protected Recurso recursoCarpetaPersonal = null;

 protected Recurso recursoMaterial = null;
 protected Recurso recursoMaterialAdicional = null;
 protected Recurso recursoSoftware = null;
 protected Recurso recursoBibliografia = null;
 protected Recurso recursoEnlaces = null;


 protected Recurso recursoNoticias = null;
 protected Recurso recursoEvaluarArchivo = null;
 protected Recurso recursoSecretaria = null;
 protected Recurso recursoDatosPersonales = null;
 protected Recurso recursoInformacion = null;
 protected Recurso recursoCalendario = null;
 protected Recurso recursoAlertas = null;
 protected Recurso recursoOferta = null;
 protected Recurso recursoContactos = null;
 protected Recurso recursoSeguimiento = null;
 protected Recurso recursoAdministracion = null;
 protected Recurso recursoRespuestasFrecuentesFAQGPC = null;
 protected Recurso recursoPreguntasFrecuentesFAQGPC = null;
 
 protected Recurso recursoAdministracionPlataforma = null;
 protected Recurso recursoCrearOrganizacion = null;
 protected Recurso recursoBuscarUsuario = null;
 protected Recurso recursoAgregarUsuario = null;
 protected Recurso recursoAsignarUsuarioAula = null;
 protected Recurso recursoCargaAlumnsoDesdeArchivo = null;
 protected Recurso recursoAsignarMiembrosEquipoDocente = null;
 protected Recurso recursoAsignarAlumnosComisiones = null;
 protected Recurso recursoListadoAlumnos = null;
 protected Recurso recursoUsuariosActivos = null;
 protected Recurso recursoAulasDeUnUsuario = null;
 protected Recurso recursoAdministrarSolicitudesAulas = null;
 protected Recurso recursoCambiarEstadoAulas = null;
 protected Recurso recursoCrearComisiones = null;
 protected Recurso recursoAgregarQuitarTipoUsuario = null;
 protected Recurso recursoConfiguracionAula = null;

  // Los distintos tipos de permisos
 protected TipoPermiso tipoPermisoNinguno = null;
 protected TipoPermiso tipoPermisoLectura = null;
 protected TipoPermiso tipoPermisoEscritura = null;


  abstract public void cargarPermisosAula(Aula aula);

  abstract public void cargarPermisosComision(Aula aula);

  public CreaPermisos(Persistencia persistencia) throws Exception
  {
    this.persistencia=persistencia;
    cargarTiposUsuario();
    cargarTipoPermiso();
    cargarRecursos();
  }


  protected void cargarRecursos() throws Exception
  {
    //Los distintos tipos de Recursos
    recursoChat = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CHAT+"\" ").elementAt(0);
    recursoInicio = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.INICIO+"\" ").elementAt(0);
    recursoFaq = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.FAQ+"\" ").elementAt(0);
    recursoPizarron = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.PIZARRON+"\" ").elementAt(0);
    recursoNoticias = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.NOTICIAS+"\" ").elementAt(0);
    recursoCorreo = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CORREO+"\" ").elementAt(0);
    recursoForoOpinion = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.FORO_OPINION+"\" ").elementAt(0);
    recursoForoAsunto = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.FORO_ASUNTO+"\" ").elementAt(0);
    recursoForoEstado = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.FORO_ESTADO+"\" ").elementAt(0);
    recursoEstadisticas = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ESTADISTICAS+"\" ").elementAt(0);
    recursoEstadisticasAcceso = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ESTADISTICAS_ACCESO+"\" ").elementAt(0);
    recursoActividades = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ACTIVIDADES+"\" ").elementAt(0);
    recursoEnviarActividadesYVerCalificaciones = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ENVIAR_ACTIVIDADES_Y_VER_CALIFICACIONES+"\" ").elementAt(0);
    recursoRecibirYEvaluarActividades = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.RECIBIR_Y_EVALUAR_ACTIVIDADES+"\" ").elementAt(0);
    recursoEvaluarActividades = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.EVALUAR_ACTIVIDADES+"\" ").elementAt(0);
    recursoCrearActividades = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CREAR_ACTIVIDADES+"\" ").elementAt(0);
    recursoCalificacionesVistaTutor = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CALIFICACIONES_VISTA_TUTOR+"\" ").elementAt(0);
    recursoCalificacionesVistaAlumnos = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CALIFICACIONES_VISTA_ALUMNO+"\" ").elementAt(0);
    recursoEncuestasLlenar = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ENCUESTAS_LLENAR+"\" ").elementAt(0);
    recursoEncuestasHabilitar = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ENCUESTAS_HABILITAR+"\" ").elementAt(0);
    recursoEncuestasResultados = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ENCUESTAS_RESULTADOS+"\" ").elementAt(0);
    recursoCarpetaPersonal = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CARPETA_PERSONAL+"\" ").elementAt(0);
    recursoMaterial =(Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.MATERIALES+"\" ").elementAt(0);
    recursoMaterialAdicional = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.MATERIALES_ADICIONALES+"\" ").elementAt(0);
    recursoBibliografia =(Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.BIBLIOGRAFIA+"\" ").elementAt(0);
    recursoSoftware = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.SOFTWARE+"\" ").elementAt(0);
    recursoEnlaces = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ENLACES+"\" ").elementAt(0);
    recursoNoticias = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.NOTICIAS+"\" ").elementAt(0);
    recursoEvaluarArchivo = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.EVALUAR_ARCHIVO+"\" ").elementAt(0);
    recursoSecretaria = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.SECRETARIA+"\" ").elementAt(0);
    recursoDatosPersonales = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.DATOS_PERSONALES+"\" ").elementAt(0);
    recursoInformacion = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.INFORMACION+"\" ").elementAt(0);
    recursoCalendario = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CALENDARIO+"\" ").elementAt(0);
    recursoAlertas =(Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ALERTAS+"\" ").elementAt(0);
    recursoOferta = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.OFERTA+"\" ").elementAt(0);
    recursoContactos = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CONTACTOS+"\" ").elementAt(0);
    recursoSeguimiento = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.SEGUIMIENTO+"\" ").elementAt(0);
    recursoAdministracion = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ADMINISTRACION+"\" ").elementAt(0);
    recursoRespuestasFrecuentesFAQGPC = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.RESPUESTAS_FRECUENTES_FAQ_GPC+"\" ").elementAt(0);
    recursoPreguntasFrecuentesFAQGPC = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.PREGUNTAS_FRECUENTES_FAQ_GPC+"\" ").elementAt(0);
    recursoAdministracionPlataforma = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ADMINISTRACION_PLATAFORMA+"\" ").elementAt(0);
    recursoCrearOrganizacion = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CREAR_ORGANIZACION+"\" ").elementAt(0);
    recursoBuscarUsuario = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.BUSCAR_USUARIO+"\" ").elementAt(0);
    recursoAgregarUsuario = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.AGREGAR_USUARIO+"\" ").elementAt(0);
    recursoAsignarUsuarioAula = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ASIGNAR_USUARIO_A_UN_AULA+"\" ").elementAt(0);
    recursoCargaAlumnsoDesdeArchivo = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CARGA_ALUMNOS_DESDE_ARCHIVO+"\" ").elementAt(0);
    recursoAsignarMiembrosEquipoDocente = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ASIGNAR_MIEMBROS_EQUIPO_DOCENTE+"\" ").elementAt(0);
    recursoAsignarAlumnosComisiones = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ASIGNAR_ALUMNOS_COMISIONES+"\" ").elementAt(0);
    recursoListadoAlumnos = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.LISTADO_ALUMNOS+"\" ").elementAt(0);
    recursoUsuariosActivos = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.USUARIOS_ACTIVOS+"\" ").elementAt(0);
    recursoAulasDeUnUsuario = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.AULAS_DE_UN_USUARIO+"\" ").elementAt(0);
    recursoAdministrarSolicitudesAulas = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.ADMINISTRAR_SOLICITUDES_AULAS+"\" ").elementAt(0);
    recursoCambiarEstadoAulas = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CAMBIAR_ESTADO_AULAS+"\" ").elementAt(0);
    recursoCrearComisiones = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CREAR_COMISIONES+"\" ").elementAt(0);
    recursoAgregarQuitarTipoUsuario = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.AGREGAR_O_QUITAR_TIPO_DE_USUARIO+"\" ").elementAt(0);
    recursoConfiguracionAula = (Recurso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.Recurso","nombre==\""+RECURSOS.CONFIGURACION_AULA+"\" ").elementAt(0);
  }



protected void cargarTipoPermiso() throws Exception
  {
    tipoPermisoNinguno = (TipoPermiso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoPermiso","descripcion==\""+TIPO_PERMISOS.NINGUNO+"\" ").elementAt(0);
    //tipoPermisoNinguno.setDescripcion(TIPO_PERMISOS.NINGUNO);

    tipoPermisoLectura= (TipoPermiso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoPermiso","descripcion==\""+TIPO_PERMISOS.LECTURA+"\" ").elementAt(0);
    //tipoPermisoLectura.setDescripcion(TIPO_PERMISOS.LECTURA);

    tipoPermisoEscritura= (TipoPermiso)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoPermiso","descripcion==\""+TIPO_PERMISOS.ESCRITURA+"\" ").elementAt(0);
    //tipoPermisoEscritura.setDescripcion(TIPO_PERMISOS.ESCRITURA);

  }

protected void cargarTiposUsuario() throws Exception
{

    tipoUsuarioAlumno = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.ALUMNO+"\" ").elementAt(0);;
    //tipoUsuarioAlumno.setNombre(TIPO_USUARIOS.ALUMNO);
    //tipoUsuarioAlumno.setNombrePlural(TEXTOS.ALUMNOS);

    tipoUsuarioTutor = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.TUTOR+"\" ").elementAt(0);
    //tipoUsuarioTutor.setNombre(TIPO_USUARIOS.TUTOR);
    //tipoUsuarioTutor.setNombrePlural(TEXTOS.TUTORES);

    tipoUsuarioVeedor = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.VEEDOR+"\" ").elementAt(0);
    //tipoUsuarioVeedor.setNombre(TIPO_USUARIOS.VEEDOR);
    //tipoUsuarioVeedor.setNombrePlural(TEXTOS.VEEDORES);

    tipoUsuarioAdministrador = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.ADMINISTRADOR+"\" ").elementAt(0);

    tipoUsuarioAdministradorMateriales = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.ADMINISTRADOR_MATERIALES+"\" ").elementAt(0);
    //tipoUsuarioAdministrador.setNombre(TIPO_USUARIOS.ADMINISTRADOR);
    //tipoUsuarioAdministrador.setNombrePlural(TEXTOS.ADMINISTRADORES);

    tipoUsuarioMonitorSiat = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.MONITOR_SIAT+"\" ").elementAt(0);
    //tipoUsuarioAsesor.setNombre(TIPO_USUARIOS.ASESOR);
    //tipoUsuarioAsesor.setNombrePlural(TEXTOS.ASESORES);

    tipoUsuarioWebMaster = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.WEBMASTER+"\" ").elementAt(0);

    tipoUsuarioResponsable = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.RESPONSABLE+"\" ").elementAt(0);

    tipoUsuarioInvitado = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.INVITADO+"\" ").elementAt(0);

    tipoUsuarioColaborador  = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.COLABORADOR+"\" ").elementAt(0);

    tipoUsuarioCoordinador  = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.COORDINADOR+"\" ").elementAt(0);

    tipoUsuarioDirector = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.DIRECTOR+"\" ").elementAt(0);

    tipoUsuarioDocente = (TipoUsuario)persistencia.getObjectosPorClaseYFiltro("persistencia.dominio.TipoUsuario","nombre==\""+TIPO_USUARIOS.DOCENTE+"\" ").elementAt(0);
}


  protected void crearPermiso(Aula aula, Recurso recurso, TipoPermiso tipoPermiso, TipoUsuario tipoUsuario)
  {
    PermisoAcceso permisoAcceso = new PermisoAcceso();
    permisoAcceso.setRecurso(recurso);
    permisoAcceso.setTipoPermiso(tipoPermiso);
    permisoAcceso.setAula(aula);
    permisoAcceso.setTipoUsuario(tipoUsuario);
    persistencia.hacerPersistente(permisoAcceso);
  }

  protected void crearPermisoMonitorSiat(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
  {
    crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioMonitorSiat);
  }

  protected void crearPermisoInvitado(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
  {
    crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioInvitado);
  }

  protected void crearPermisoColaborador(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
  {
    crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioColaborador);
  }


protected void crearPermisoCoordinador(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
{
  crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioCoordinador);
}

  protected void crearPermisoResponsable(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
  {
    crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioResponsable);
  }

  protected void crearPermisoWebMaster(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
  {
    crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioWebMaster);
  }

   protected void crearPermisoVeedor(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioVeedor);
   }

   protected void crearPermisoTutor(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioTutor);
   }

   protected void crearPermisoDocente(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioDocente);
   }


   protected void crearPermisoAdministradorMateriales(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioAdministradorMateriales);
   }

   protected void crearPermisoAdministrador(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioAdministrador);
   }

   protected void crearPermisoDirector(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioDirector);
   }

   protected void crearPermisoAlumno(Aula aula, Recurso recurso, TipoPermiso tipoPermiso)
   {
     crearPermiso(aula, recurso, tipoPermiso, tipoUsuarioAlumno);
   }


  abstract protected void cargarPermisosMonitorSIATComision(Aula aula);

  abstract protected void cargarPermisosAdministrativoComision(Aula aula);

  abstract protected void cargarPermisosResponsableComision(Aula aula);

  abstract protected void cargarPermisosDocenteComision(Aula aula);

  abstract protected void cargarPermisosDirectorComision(Aula aula);

  abstract protected void cargarPermisosAlumnoComision(Aula aula);

  abstract protected void cargarPermisosAdministrativoAula(Aula aula);

  abstract protected void cargarPermisosAdministradorMaterialesAula(Aula aula);

  abstract protected void cargarPermisosTutorComision(Aula aula);

  abstract protected void cargarPermisosMonitorSIATAula(Aula aula);

  abstract protected void cargarPermisosInvitadoComision(Aula aula);

  abstract protected void cargarPermisosColaboradorComision(Aula aula);

  abstract protected void cargarPermisosCoordinadorComision(Aula aula);

  abstract protected void cargarPermisosVeedorComision(Aula aula);

  abstract protected void cargarPermisosVeedorAula(Aula aula);

  abstract protected void cargarPermisosResponsableAula(Aula aula);

  abstract protected void cargarPermisosTutorAula(Aula aula);

  abstract protected void cargarPermisosInvitadoAula(Aula aula);

  abstract protected void cargarPermisosColaboradorAula(Aula aula);

  abstract protected void cargarPermisosCoordinadorAula(Aula aula);

  abstract protected void cargarPermisosDirectorAula(Aula aula);

  abstract protected void cargarPermisosDocenteAula(Aula aula);

  abstract protected void cargarPermisosAlumnoAula(Aula aula);


////////////////////// PERMISOS DEL WEBMASTER
 protected void cargarPermisosWebMaster(Aula aula)
 {
   crearPermisoWebMaster(aula, recursoAlertas, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCalendario, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCarpetaPersonal, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoChat, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCorreo, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoDatosPersonales, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEncuestasHabilitar, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEncuestasLlenar, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEncuestasResultados, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEstadisticas, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEstadisticasAcceso, tipoPermisoEscritura);

   crearPermisoWebMaster(aula, recursoEvaluarArchivo, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoFaq, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoForoOpinion, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoForoAsunto, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoForoEstado, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoInformacion, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoInicio, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoMaterial, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoBibliografia, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEnlaces, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoSoftware, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoMaterialAdicional, tipoPermisoEscritura);


   crearPermisoWebMaster(aula, recursoActividades, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoRecibirYEvaluarActividades, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCrearActividades, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoEvaluarActividades, tipoPermisoEscritura);

   crearPermisoWebMaster(aula, recursoCalificacionesVistaTutor, tipoPermisoEscritura);


   crearPermisoWebMaster(aula, recursoNoticias, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoPizarron, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoSecretaria, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoContactos, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoSeguimiento, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoAdministracion, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoRespuestasFrecuentesFAQGPC, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoPreguntasFrecuentesFAQGPC, tipoPermisoEscritura);
   
   crearPermisoWebMaster(aula, recursoBuscarUsuario, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoListadoAlumnos, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCargaAlumnsoDesdeArchivo, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoConfiguracionAula, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoAsignarMiembrosEquipoDocente, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoAsignarAlumnosComisiones, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoCrearComisiones, tipoPermisoEscritura);
   crearPermisoWebMaster(aula, recursoAgregarQuitarTipoUsuario, tipoPermisoEscritura);
 }
}